PS2 MEMORY CARD TOOLKIT v1.4.0 — PYTHON WINDOWS GUI
==================================================

CREATED BY shadow501

THIS IS THE PYTHON VERSION, based on v1.0.0 with extra import formats.
No Visual Basic, .NET runtime, or Visual Studio installation required.

WINDOWS QUICK START
1) Install Python 3.10 or newer (with tkinter, included in official Windows installers).
2) Extract the ZIP into a normal folder.
3) Double-click Launch_Toolkit.bat (or run python PS2_Memory_Card_Toolkit.py).
4) Click "Open Mcdxxx.ps2" and choose your existing card.
5) Click "Open Save File..." and open .CBS, .PSU, .MAX, .SPS or .XPS.
   The external save is copied automatically. Inspect its internal files on the right.
6) Click "Paste to Card". If the game save already exists, confirm replacement.
7) Click "Save Card As..." to write a new edited card image.
8) Close PCSX2, BACK UP your real Mcd001.ps2, and then use the edited card.

ABOUT / INFORMATION
- Help > About PS2 Memory Card Toolkit: prominently displays "Created by shadow501".
- Help > Program Information: detailed features, import formats and shortcuts.
- Help > Memory Card Information: real card geometry, free space and save details.
- About / Info toolbar shortcut is also available.

SUPPORTED
- PCSX2 .PS2 memory card images (512-byte pages, optional +16 spare / ECC)
- CodeBreaker .CBS saves
- EMS/uLaunchELF .PSU saves
- Action Replay MAX .MAX (MAX Drive, LZARI decompression)
- SharkPort .SPS and X-Port .XPS
- .P2G files only if their contents match one of the above valid signatures.
  Standalone .P2G is not a documented PS2 save archive. A real file is
  required before any separate .P2G importer can be validated.
- Copy save / Paste save / Export .PSU / Delete / Save Card As
- Full save content readback and duplicate detection; original remains intact.
- Ctrl+O open card, Ctrl+Shift+O open external save, Ctrl+C copy from card,
  Ctrl+V paste to card, Ctrl+Shift+S Save As.

OPTIONAL WINDOWS EXE
Run Build_Windows_EXE.bat to install PyInstaller and create
 dist\PS2_Memory_Card_Toolkit.exe locally, on Windows.
The ZIP includes the full Python source; it does NOT include a Windows EXE.

TESTS
python test_engine.py   (original card-engine multi-save / ECC tests)
python test_formats.py  (MAX, SPS, XPS imports and card re-open)
xvfb-run -a python test_gui.py    (GUI smoke test on Linux, where xvfb available)

Example data: EXAMPLE_Mcd001.ps2, SAMPLE_BloodyRoar4.cbs,
Test_BloodyRoar4.max/.sps/.xps contain the Bloody Roar 4 Career Mode
Yugo example used in the earlier toolkit. The MAX/SPS/XPS files are
*generated test fixtures*; results don't prove every real-world variant.

IMPORTANT
Never modify a card while PCSX2 is running or has mounted it.
Keep original backups. Only replace one duplicate save after confirmation.
The software is supplied as source code; test with your own backups first.
